package com.jtp7.demo.service;

import com.jtp7.demo.entity.TruckInfo;
import com.jtp7.demo.entity.response.PageListResult;



/**
 * @author 梅玉松
 * @project: JTP_DEMO
 * @create2021-08-06-14:04 描述:
 */
public interface ICacheRedis<T> {

    /**
     * 查询方法的简化封装
     * @param currentPage 当前的页码
     * @param size 每页显示多少条数据
     * @param info 可变参数,配置你加入redis的key
     * @return
     */
    PageListResult<T> redisFuzzySearchBeforeTo(Integer currentPage, Integer size, String ... info);

    /**
     *  简化redisFuzzySearchBeforeTo方法的
     * @param strings
     * @param currentPage
     * @param size
     * @return
     */
     PageListResult<T> redisFuzzySearchBefore(String strings, Integer currentPage, Integer size);


    /**
     * 查询后方法的简化
     * @param pageString
     * @param currentPage
     * @param size
     * @param info
     * @param timeout 分钟
     */
    void redisFuzzySearchAfterTo(String pageString,Integer currentPage, Integer size,Long timeout, String ... info);

    /**
     * 查询后保存缓存
     * @param pageString
     * @param strings
     * @param currentPage
     * @param size
     * @Param Timeout 单位分钟
     */
     void redisFuzzySearchAfter(String pageString,String strings, Integer currentPage, Integer size, Long timeout);

    /**
     * 单个对象修改缓存
     * @param truckInfo
     * @param i 过期的时间 单位秒
     * @deprecate 使用可变参数的方法
     */
    @Deprecated
    void  modifyCacheOne(TruckInfo truckInfo, long i);


    /**
     * 修改的缓存操作
     * @param truckInfo
     * @deprecate 使用可变参数的方法
     */
    @Deprecated
    void updtaRedis(TruckInfo  truckInfo,String key);
    /**
     * 修改的缓存操作
     * @param o 类
     * @param info 可变参数
     * @param timeout 过期时间 分钟
     */
    void updtaRedis(T o,Long timeout, String ... info);


    /**
     * 单个对象修改缓存
     * @param timeout       过期的时间 单位分钟
     * @param object  对象
     * @param names 名字
     */
     void modifyCacheOne(Long timeout,T object, String  names);

     String getKey(String key);


    void deletKey(T info);
}
